import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_09_game/base/widget/base_get_builder.dart';
import 'package:flutter_09_game/config/app_color.dart';
import 'package:flutter_09_game/generated/assets.dart';
import 'package:flutter_09_game/generated/locales.g.dart';
import 'package:flutter_09_game/pages/profile/widgets/widget_profile_rich.dart';
import 'package:flutter_09_game/user/app_user_manager.dart';
import 'package:flutter_09_game/utils/log/utils_log.dart';
import 'package:flutter_09_game/utils/utils_other.dart';
import 'package:flutter_09_game/widgets/appbar/common_app_bar.dart';
import 'package:flutter_09_game/widgets/button/common_button.dart';
import 'package:flutter_09_game/widgets/image/auto_image.dart';
import 'package:flutter_09_game/widgets/input/common_text_field.dart';
import 'package:flutter_09_game/widgets/verify_input_box/src/verification_box.dart';
import 'package:flutter_09_game/widgets/widget_profile_item.dart';
import 'package:flutter_09_game/widgets/widget_verification_box.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';

import 'profile_bind_address_logic.dart';

class ProfileBindAddressPage extends StatelessWidget {
  ProfileBindAddressPage({super.key});

  final ProfileBindAddressLogic logic = Get.put(ProfileBindAddressLogic());

  @override
  Widget build(BuildContext context) {
    return BaseGetBuilder<ProfileBindAddressLogic>(
      appBar: CommonAppBar(
        title: LocaleKeys.bindBettingAddress.tr,
        actions: [
          GestureDetector(
            onTap: () {
              AppUserManager().showServiceSheet();
            },
            child: AutoImage(
              Assets.commonServiceBtn,
              width: 32.w,
            ),
          ),
          10.horizontalSpace,
        ],
      ),
      builder: (_) {
        return Container(
          padding: EdgeInsets.all(12.w),
          margin: EdgeInsets.all(16.w)
              .copyWith(bottom: 16 + ScreenUtil().bottomBarHeight),
          decoration: BoxDecoration(
              color: AppColor.navBgColor,
              borderRadius: BorderRadius.circular(16.w)),
          child: Column(
            children: [
              Expanded(
                  child: SingleChildScrollView(
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    WidgetProfileItem(
                        LocaleKeys.addressType.tr,
                        Container(
                          padding: EdgeInsets.symmetric(
                              vertical: 14.w, horizontal: 12.w),
                          decoration: BoxDecoration(
                              color: AppColor.color2D2F35,
                              borderRadius: BorderRadius.circular(8.w)),
                          child: Row(
                            children: [
                              // AutoImage(
                              //   Assets.commonTrxTag,
                              //   width: 20.w,
                              // ),
                              // 8.horizontalSpace,
                              Text(
                                LocaleKeys.trx20Protocol.tr,
                                style: TextStyle(
                                    color:
                                        AppColor.textPrimary.withOpacity(0.3),
                                    fontSize: 14.sp,
                                    fontWeight: FontWeight.w500),
                              )
                            ],
                          ),
                        )),
                    16.verticalSpaceFromWidth,
                    WidgetProfileItem(LocaleKeys.fundPassword.tr,
                        WidgetVerificationBox(
                      onValueChanged: (text) {
                        logic.fundPassword.value = text;
                        logic.validateForm();
                      },
                    )),
                    16.verticalSpaceFromWidth,
                    WidgetProfileItem(
                        LocaleKeys.betAddress.tr,
                        CommonTextField(
                          textEditingController: logic.addressController,
                          hintText: LocaleKeys.pleaseEnterBettingAddress.tr,
                          backgroundColor: Colors.black.withOpacity(0.3),
                          borderColor: AppColor.textPrimary.withOpacity(0.15),
                          keyboardType: TextInputType.visiblePassword,
                          inputFormatters: [
                            FilteringTextInputFormatter.allow(
                                RegExp(r'[a-zA-Z0-9]'))
                          ],
                          // maxLength: 40,
                          rightWidget: GestureDetector(
                            onTap: () {
                              UtilsOther.copyMemberId(
                                  logic.addressController.text);
                            },
                            child: AutoImage(
                              Assets.gameCopy,
                              width: 32.w,
                            ),
                          ),
                          onChanged: (tex) {
                            logic.validateForm();
                          },
                        )),
                    16.verticalSpaceFromWidth,
                    Text(
                      LocaleKeys.warmTips.tr,
                      style: TextStyle(
                          color: AppColor.primary,
                          fontWeight: FontWeight.w600,
                          fontSize: 12.sp),
                    ),
                    8.verticalSpaceFromWidth,
                    WidgetProfileRich(
                        text: '1、${LocaleKeys.addressSecurityTip1.tr}'),
                    8.verticalSpaceFromWidth,
                    WidgetProfileRich(
                        text: '2、${LocaleKeys.addressSecurityTip2.tr}'),
                  ],
                ),
              )),
              12.verticalSpaceFromWidth,
              Obx(() => CommonButton.expend(
                    title: LocaleKeys.confirmBind.tr,
                    enable: logic.isFormValid.value,
                    onClick: () {
                      logic.postUserBindTrc20Address();
                    },
                  )),
            ],
          ),
        );
      },
    );
  }
}
